package com.wang.code;

import java.util.ArrayList;
import java.util.Arrays;
public class _3ArrayListTest {

	public static void main(String[] args) {
		
		ArrayList list = new ArrayList();
		
		list.add(1);
		list.add(3.14);
		list.add(true);
		list.add("123");
		list.add("dfh");
		list.add(new int[3]);
		System.out.println(list);
		
		list.add(4,"tytr");
		System.out.println(list);
		ArrayList test = new ArrayList();
		test.add("rty");
		test.add("wer");
		test.add("qwesd");
		test.add("qwe");
		test.add("asdzx");
		test.add("qwe");
		list.addAll(test);
		System.out.println(list);
//		list.clear();
//		System.out.println(list);

		// 5.boolean contains(Object o) 判定当前集合中是否包含 o这个元素
		boolean contains = list.contains("qwe");
		System.out.println(contains);
		
		// 6.E get(int index)返回此列表中指定位置的元素。
		Object object = list.get(2);
		System.out.println(object);
		
		// 7.int indexOf(Object o) 返回此列表中指定元素的第一次出现的索引，如果此列表不包含元素，则返回-1。
		int indexOf = list.indexOf("sad");
		System.out.println(indexOf);
		
		// 8.int lastIndexOf(Object o) 返回此列表中指定元素的最后一次出现的索引，如果此列表不包含元素，则返回-1。
		int lastIndexOf = list.lastIndexOf("fgh");
		System.out.println(lastIndexOf);
		
		// 9.boolean isEmpty()如果此列表不包含元素，则返回 true 。
		System.out.println(list.isEmpty());
		
		// 10.E remove(int index) 删除该列表中指定位置的元素。
		Object remove = list.remove(10);
		System.out.println(remove);
		System.out.println(list);
		
		// 11.boolean remove(Object o) 从列表中删除指定元素的第一个出现（如果存在）。注意：如果传入的参数是int类型，会默认调用下标的删除方法，如果想要删除的是Integer元素，则必须制定参数是Integer类型
		boolean remove2 = list.remove(Integer.valueOf(1));//需要删除1这个元素，这里就必须用包装类手动包装一下
		System.out.println(remove2);
		System.out.println(list);
		
		// 12.boolean removeAll(Collection c)从此列表中删除指定集合中包含的所有元素。
		System.out.println(test);
		boolean remove3 = list.removeAll(test);
		System.out.println(remove3);
		System.out.println(list);
		
		// 13.E set(int index, E element)将指定下标index处的元素修改为element
		list.set(0, "qwer");
		System.out.println(list);
		
		// 14.int size() 返回此列表中的元素数。
		System.out.println(list.size());
		
		// 15.Object[] toArray()将ArrayList对象转换为数组	重要
		Object[] array = list.toArray();
		System.out.println(Arrays.toString(array));
		
		//扩展：将数组转换为集合对象	static <T> List<T> asList(T... a) 返回由指定数组支持的固定大小的列表。  注意：这里必须是包装类的数组才能转换为集合对象
		//List<Integer> asList = Arrays.asList(1,2,3);//数组是什么类型，集合中元素就全是这个类型的
		//List<Object> asList2 = Arrays.asList(array);//数组是什么类型，集合中元素就全是这个类型的
		
		// 16.void trimToSize() 将ArrayList对象中未使用的空间去除（基本不用）
		
		
	}

}
